Folding text

ABSTRACT

An example of a solution provided here comprises receiving a text definition signal, defining a first portion of text for folding, receiving a signal for hiding, and in response to the signal for hiding, displaying to at least one user a text view without the first portion, and a clue as to what is hidden.

CROSS-REFERENCE TO RELATED APPLICATION, AND COPYRIGHT NOTICE

The present patent application is related to a co-pending patentapplication entitled Folding Text in Side Conversations, filed on evendate herewith, assigned to the assignee of the present patentapplication, and herein incorporated by reference. A portion of thedisclosure of this patent document contains material which is subject tocopyright protection. The copyright owner has no objection to thefacsimile reproduction by anyone of the patent document or the patentdisclosure, as it appears in the Patent and Trademark Office patent fileor records, but otherwise reserves all copyright rights whatsoever.

FIELD OF THE INVENTION

The present invention relates generally to information handling anddigital communication, and more particularly to software, systems, andmethods of messaging and collaboration.

BACKGROUND OF THE INVENTION

When collaborating on a project, it is often difficult to point othersto the right place in a text, or to weed out irrelevant information. Forexample, consider the use of instant messaging (IM) applications asconference tools to discuss issues and share ideas or information. Alarge number of participants in an IM conference is not uncommon, theconference time can be lengthy, and many topics may be covered. As aconsequence, IM transcripts often are lengthy. Since they are flat filesthat just simply log the conversations from beginning to end, lengthytranscripts cause the following difficulties for users. It becomesdifficult to keep track of the conversation, or just the part that isrelevant to a particular user. Full text search is an conventionaloption, but navigation after finding text can be difficult. It is oftendifficult to point others to the right place in a conversation. Users ofconventional IM applications may look back at the previous transcriptline by line, then cut and paste pertinent information into the IMwindow so other people know what they are referring to. Thiscut-and-paste approach diverts users' attention, and increasestranscript volume, which makes it even harder to read and findinformation later on.

Thus there is a need for systems and methods that hide certain parts ofa text (such as IM transcripts) to facilitate communication andorganization.

SUMMARY OF THE INVENTION

An example of a solution to problems mentioned above comprises receivinga text definition signal, defining a first portion of text for folding,receiving a signal for hiding, and in response to the signal for hiding,displaying to at least one user a text view without the first portion,and a clue as to what is hidden.

BRIEF DESCRIPTION OF THE DRAWINGS

A better understanding of the present invention can be obtained when thefollowing detailed description is considered in conjunction with thefollowing drawings. The use of the same reference symbols in differentdrawings indicates similar or identical items.

FIG. 1 illustrates a simplified example of a computer system capable ofperforming the present invention.

FIG. 2A shows an example of defining a portion of text for folding.

FIG. 2B shows a view after reversibly hiding a portion of text.

FIG. 3 is a flow chart illustrating an example of a communicationmethod, according to the present invention.

FIG. 4 is a block diagram illustrating an example of a messaging systemor real-time communication system.

DETAILED DESCRIPTION

The examples that follow involve the use of one or more computers andmay involve the use of one or more communications networks. The presentinvention is not limited as to the type of computer on which it runs,and not limited as to the type of network used.

The following are definitions of terms used in the description of thepresent invention and in the claims:

-   “Computer-usable medium” means any carrier wave, signal or    transmission facility for communication with computers, and any kind    of computer memory, such as floppy disks, hard disks, Random Access    Memory (RAM), Read Only Memory (ROM), CD-ROM, flash ROM,    non-volatile ROM, and non-volatile memory.-   “Folding” means concealing or obscuring from the view of some users    or all users.-   “Storing” data or information, using a computer, means placing the    data or information, for any length of time, in any kind of computer    memory, such as floppy disks, hard disks, Random Access Memory    (RAM), Read Only Memory (ROM), CD-ROM, flash ROM, non-volatile ROM,    and non-volatile memory.

FIG. 1 illustrates a simplified example of an information handlingsystem that may be used to practice the present invention. The inventionmay be implemented on a variety of hardware platforms, includingembedded systems, personal computers, workstations, servers, andmainframes. The computer system of FIG. 1 has at least one processor110. Processor 110 is interconnected via system bus 112 to random accessmemory (RAM) 116, read only memory (ROM) 114, and input/output (I/O)adapter 118 for connecting peripheral devices such as disk unit 120 andtape drive 140 to bus 112. The system has user interface adapter 122 forconnecting keyboard 124, mouse 126, or other user interface devices suchas audio output device 166 and audio input device 168 to bus 112. Thesystem has communication adapter 134 for connecting the informationhandling system to a communications network 150, and display adapter 136for connecting bus 112 to display device 138. Communication adapter 134may link the system depicted in FIG. 1 with hundreds or even thousandsof similar systems, or other devices, such as remote printers, remoteservers, or remote storage units. The system depicted in FIG. 1 may belinked to both local area networks (sometimes referred to as intranets)and wide area networks, such as the Internet.

While the computer system described in FIG. 1 is capable of executingthe processes described herein, this computer system is simply oneexample of a computer system. Those skilled in the art will appreciatethat many other computer system designs are capable of performing theprocesses described herein.

FIGS. 2A-2B illustrate examples of folding text, according to theteachings of the present invention. FIGS. 2A-2B each illustrate anexample of a screen shot from a messaging application. FIGS. 2A-2B eachillustrate screen 200, having a menu bar 210A and a scroll bar 210B.Screen 200 displays text (such as text at 201 in FIG. 2B). (In otherscenarios, users of collaboration software may utilize an interfacesimilar to screen 200, in working together on software code, a reusablecomponent of web services, a transcript of a speech, a document, etc.)Here is an overview of major features illustrated in these examples inFIGS. 2A-2B:

-   -   Users fold a certain portion of the text (to hide it), and        reverse this by unfolding the text. Thus users can grasp overall        information and allocate information quickly in lengthy        transcripts, for example.    -   Users share fold views. Users can easily refer to the portion of        text they are talking about, by sharing fold views, during a        conference (see FIG. 2B).    -   Users define fold rules and save them in order to reuse these        rules.    -   Users define default folds, and let an IM application apply        folding rules automatically.

Turning to details of the invention, FIG. 2A shows an example ofdefining a portion of text, lines 212-216, for folding. Then if themessaging application receives the signal for hiding, lines 212-216 arehidden (see FIG. 2B).

FIG. 2B shows a view after reversibly hiding a portion of text (lines212-216, that are visible in FIG. 2A). This view may be created underthe control of one user, and shared with other participants in aconference. A button 219 may give a clue as to what has been folded orhidden.

Users hide certain portions of the text in folds, and reverse this byopening the folds. Users are able to select a section of text and issuea command or click a button to “fold” the text to a much smaller size.The folded text can be expanded by issuing a command or by clicking onit. Here is a use case to fold the text:

-   1. Users select a section of text (e.g. lines 212-216 that are    visible in FIG. 2A) and issue a command, or click a button, or right    click and choose a menu option to “fold” the text.-   2. A button 219 (visible in FIG. 2B) showing the first words will    appear, or a plus sign will show the folds, for example.-   3. The IM client can be configured so the first few words appear    next to a fold or on the button 219 so the user has a due of what    has been hidden.-   4. The fold clues (similar to button 219) can be customized, with    different colors, images or shapes to reveal the priority, hierarchy    orders, identities of people or other information, for example.

Here is a use case to unfold or open the folds:

-   1. Users issue a command to open, or click on a plus sign or button    219, or move a mouth symbol over the plus sign or button 219, for    example.-   2. The original text (e.g. lines 212-216 that are visible in FIG.    2A) will expand or unfold.-   3. The IM client can be configured so that when a portion of text    expands, other parts will fold automatically in order to provide a    manageable overview.

Continuing with other aspects of the example in FIGS. 2A-2B, the“sharing” of a text fold view (such as the view in FIG. 2B) is aconvenience mechanism to share the hiding of text. It is equivalent toviews in a database analogy. It allows users to define fold views andshare these views with others. The benefits are allowing different usersto see a common fold view, highlighting the important parts, obscuringthe part that is distracting, and facilitating the communication. Thisaspect of the invention is synchronization of fold views, with anotherIM client, or in an IM meeting as well. Synchronizing the IM meetingfold views means that all the IM clients participating in the IM meetingsee one common fold view (such as the view in FIG. 2B). Preferably, themoderator controls the IM and the folding in the e-meeting, or allowsothers to do the folding. For example, user A is the moderator of ane-meeting, and user B is the presenter in the e-meeting. User A grantsuser B the synchronization right. User B wants everyone focus on oneportion of text (e.g. line 211 in FIGS. 2A-2B), so he hides the rest anddefines a fold view. User B executes the commands or clicks the button,and everyone's e-Meeting display (e.g. screen 200 in FIG. 2B) will showUser B's defined text view.

Continuing with other aspects of the example in FIGS. 2A-2B, considerdefining folding rules (rules for defining a portion of text, such aslines 212-216, for folding), and saving them in order to reuse theserules.

-   -   Users can define folds within or across folds, i.e., sub-folds        and super-folds, on an ad-hoc basis.    -   Folds can be defined at places where people say something as in        a turn or sub-turn, where turns change, where topics change,        where a session ends, where it begins again. Line numbers,        timestamp, or names of people are also good criteria for        folding. Last, folds can be defined for a previous conversation        after a period of inactivity.    -   Users can save the folding rules for a later usage. Users can        issue a command to invoke a particular folding rule. For        example, a user wants to fold all text prior to half an hour        ago, so she selects an item from menu bar 210A, or types in a        command and activates a predefined rule: “fold 30 minutes.” The        IM client will fold all text prior to half an hour earlier (i.e.        an old portion of a message transcript). Preferably, the IM        clients have the ability to turn on line numbers.

Next, consider default folds to let an IM application apply foldingrules automatically. Users can define default folding rules. Forexample, an IM client will automatically fold the transcripts at turns,at topic changes, at names of people, or provide users the option ofwhen to fold.

In summary, FIGS. 2A-2B illustrate an example where a messagingapplication receives a text definition signal, defining a portion oftext (shaded lines 212-216), for folding. The messaging applicationreceives the signal for hiding. FIG. 2B illustrates displaying to atleast one user a text view without a selected portion (lines 212-216),and displaying a clue 219 as to what is hidden, in response to thesignal for hiding. The example may be extended to include sharing withother conference participants a message transcript view (FIG. 2B),without the old portion of a message transcript that was selected forhiding. Thus information remaining (line 211) in the shared messagetranscript view may be emphasized.

FIG. 3 is a flow chart illustrating an example of a communicationmethod, according to the present invention. The example starts at Block301 and continues at Block 302 with opening an IM client. Decision 303symbolizes the choice between one-time. usage, or operations that affectfuture usage of the tool. For one-time usage, at Decision 303 the “Yes”path is taken to Block 304. At Block 304, users can define folds on anad-hoc basis. At Block 304, the messaging application receives thesignal for defining a portion of text, for folding. At Block 305, themessaging application receives the signal for hiding, and folds acertain portion of the text (to hide it). Thus a user applies folding toone's own IM client. At Decision 306 the messaging application mayreceive a command to impact another client. If so, the “Yes” path istaken to Decision 312. For example, a user defines a fold view andshares this view with others (Block 316). On the other hand, if nocommand is received to impact another client, the “No” path is taken toend at Block 317.

At Decision 312, the messaging application may receive a signal tosynchronize: in other words, define a fold view and share this view withothers. If so, the “Yes” path is taken to 316. At Block 316 all the IMclients participating in the IM meeting display one common fold view.After operations at Block 316, the example ends at Block 317. On theother hand, if no command is received to synchronize, the “No” path istaken to end at Block 317.

Continuing with details of FIG. 3, at Decision 303, the “No” path may betaken to 307, to define folding rules, and to save them at Block 308 inorder to reuse these rules (see also the description above in connectionwith FIGS. 2A-2B). At Block 307, the messaging application receivesinput to define a particular folding rule. For example, line numbers,timestamp, or names of people are good criteria for folding. At Block308 the messaging application receives a command to save the foldingrules for a later usage.

Decision 309 symbolizes the option to define default folding rules. AtBlock 310 users can define default folding rules. For example, an IMclient will automatically fold the transcripts at turns, at topicchanges, at names of people. On the other hand, from decision 309, the“No” path may be taken directly to 311. At Block 311 the messagingapplication receives a command to invoke a particular folding rule. Forexample, a user wants to fold all text prior to half an hour ago, so shetypes in a command and activates a predefined rule: “fold 30 minutes.”The transcripts will fold all text prior to half an hour earlier. Or anIM application may apply default folding rules automatically, in theabsence of a contrary command-from a user.

Regarding FIG. 3, the order of the operations described above may bevaried. For example, putting Decision 306 (“Impact other client?”) firstis within the practice of the invention. Blocks in FIG. 3 could bearranged in a somewhat different order, but still describe theinvention. Blocks could be added to the above-mentioned diagram todescribe details, or optional features; some blocks could be subtractedto show a simplified example.

FIG. 4 is a block diagram illustrating an example of a messaging systemor real-time communication system 400. Users of clients 401-404 mayshare a fold view (described in connection with FIG. 2B) in aninstant-messaging conference (conference symbolized in FIG. 4 by “mainconversation” arrows 411-414). In another scenario, users of clients401-404 may share a fold view, where the users are collaborating on adocument, which may be stored on server 405.

In the example in FIG. 4, clients 401-404 serve as means for receiving atext definition signal, and a signal for hiding. Referring again toFIGS. 2A-2B, for example, menu bar 210A displays and invokes, inresponse to user inputs, a main level of user commands. Menu bar 210Aalso invokes additional pull-down menus. A text definition signal, or asignal for hiding, or both, may be received through a user's selectionof a menu item. These signals may be user event signals, such asmouse-button clicks or drags.

In the example in FIG. 4, clients 401-404 serve as means for displayingto users a text view and a clue as to what is hidden. Clients 401-404,server 405, and network 420 serve as means for sharing the text view.Clients 401-404 and server 405 may be implemented on a variety ofhardware platforms (see FIG. 1 and its written description). Clients401-404 may be implemented with hand-held wireless communicationsdevices, notebook computers, personal computers, or workstations, forexample.

Clients 401-404 and server 405 may be implemented with various softwarehaving messaging functions, such as software products sold under thetrademarks LOTUS NOTES and LOTUS DOMINO by IBM, for example. Anotherimplementation option is free, open-source software available under thetrademark JABBER from Jabber Software Foundation. JABBER is well-suitedfor building custom functionality on top of the core protocols. Examplesare described in an article by William Wright and Dana Moore, “InstantMessaging A Programmer's Tool? Jabber and Lightweight Languages Do theTrick,” Dr. Dobb's Journal, pages 48-53, March 2004, herein incorporatedby reference. The article examines the JABBER client-side protocol, anduse of JABBER with various programming languages including Python, Perl,and Ruby. The JABBER protocol is described as “a bidirectional XMLstream exchanged between the IM client and Jabber server.”

In conclusion, we have shown examples of systems and methods that hidecertain parts of a text to facilitate communication and organization. Wehave provided detailed examples involving instant messaging.

One of the possible implementations of the invention is an application,namely a set of instructions (program code) executed by a processor of acomputer from a computer-usable medium such as a memory of a computer.Until required by the computer, the set of instructions may be stored inanother computer memory, for example, in a hard disk drive, or in aremovable memory such as an optical disk (for eventual use in a CD ROM)or floppy disk (for eventual use in a floppy disk drive), or downloadedvia the Internet or other computer network. Thus, the present inventionmay be implemented as a computer-usable medium havingcomputer-executable instructions for use in a computer. In addition,although the various methods described are conveniently implemented in ageneral-purpose computer selectively activated or reconfigured bysoftware, one of ordinary skill in the art would also recognize thatsuch methods may be carried out in hardware, in firmware, or in morespecialized apparatus constructed to perform the method.

While the invention has been shown and described with reference toparticular embodiments thereof, it will be understood by those skilledin the art that the foregoing and other changes in form and detail maybe made therein without departing from the spirit and scope of theinvention. The appended claims are to encompass within their scope allsuch changes and modifications as are within the true spirit and scopeof this invention. Furthermore, it is to be understood that theinvention is solely defined by the appended claims. It will beunderstood by those with skill in the art that if a specific number ofan introduced claim element is intended, such intent will be explicitlyrecited in the claim, and in the absence of such recitation no suchlimitation is present. For non-limiting example, as an aid tounderstanding, the appended claims may contain the introductory phrases“at least one” or “one or more” to introduce claim elements. However,the use of such phrases should not be construed to imply that theintroduction of a claim element by indefinite articles such as “a” or“an” limits any particular claim containing such introduced claimelement to inventions containing only one such element, even when thesame claim includes the introductory phrases “at least one” or “one ormore” and indefinite articles such as “a” or “an;” the same holds truefor the use in the claims of definite articles.

1. A method of real-time, or near-real-time, communication in a networkenvironment, said method comprising: receiving a text definition signal,defining a first portion of text, for folding; receiving a signal forhiding; and in response to said signal for hiding, displaying to atleast one user: a text view without said first portion; and a clue as towhat is hidden.
 2. The method of claim 1, further comprising: receivinga command to invoke a folding rule; and acting upon said rule.
 3. Themethod of claim 1, wherein said clue has one or more features chosenfrom: a color, an image, and a shape; whereby information as to what ishidden is conveyed to said user.
 4. The method of claim 1, furthercomprising: customizing said due, in response to a signal from saiduser.
 5. The method of claim 1, further comprising: sharing with anotheruser said text view without said first portion; whereby informationremaining in said text view may be emphasized.
 6. The method of claim 1,further comprising: receiving a signal to open; and in response to saidsignal to open, displaying a text view with said first portion restored.7. A method of real-time, or near-real-time, communication in a networkenvironment, said method comprising: receiving a text definition signal,defining an old portion of a message transcript for hiding; reversiblyhiding said old portion; and displaying to at least one user: a textview without said old portion; and a clue as to what is hidden.
 8. Themethod of claim 7, further comprising: sharing with other participants amessage transcript view without said old portion; whereby informationremaining in the shared message transcript view may be emphasized. 9.The method of claim 7, further comprising: receiving a signal to invokea folding rule; and acting upon said rule.
 10. The method of claim 7,further comprising: receiving input to define a folding rule; definingsaid folding rule in response to said input; and storing said foldingrule for reuse.
 11. The method of claim 7, further comprising: providingrules for automatically defining said old portion of message transcriptfor hiding.
 12. A system of real-time, or near-real-time, communicationin a network environment, said system comprising: means for receiving atext definition signal, defining a first portion of text, for folding;and means for receiving a signal for hiding; and means for displaying toat least one user: a text view without said first portion; and a clue asto what is hidden.
 13. The system of claim 12, further comprising: meansfor sharing with another user said text view without said first portion;whereby information remaining in said text view may be emphasized.
 14. Acomputer-usable medium having computer-executable instructions forreal-time, or near-real-time, communication in a network environment,said computer-usable medium comprising: means for receiving a textdefinition signal, defining a first portion of text, for folding; andmeans for receiving a signal for hiding; and means for displaying to atleast one user: a text view without said first portion; and a clue as towhat is hidden.
 15. The computer-usable medium of claim 14, furthercomprising: means for sharing with another user said text view withoutsaid first portion; whereby information remaining in said text view maybe emphasized.